package com.ruoyi.system.api.mapper;

import com.ruoyi.system.api.domain.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户信息 (数据来源于CC端主动调用)Mapper接口
 * 
 * @author shihx
 * @date 2020-02-25
 */
public interface UserMapper 
{
    /**
     * 查询用户信息 (数据来源于CC端主动调用)
     * 
     * @param id 用户信息 (数据来源于CC端主动调用)ID
     * @return 用户信息 (数据来源于CC端主动调用)
     */
    public User selectUserById(Long id);
    /**
     * 查询用户信息 (数据来源于CC端主动调用)
     *
     * @param id 用户信息 (数据来源于CC端主动调用)ID
     * @return 用户信息 (数据来源于CC端主动调用)
     */
    public User selectUserByEmail(@Param(value="email") String email);
    /**
     * 查询用户信息 (数据来源于CC端主动调用)列表
     * 
     * @param user 用户信息 (数据来源于CC端主动调用)
     * @return 用户信息 (数据来源于CC端主动调用)集合
     */
    public List<User> selectUserList(User user);

    /**
     * 新增用户信息 (数据来源于CC端主动调用)
     * 
     * @param user 用户信息 (数据来源于CC端主动调用)
     * @return 结果
     */
    public int insertUser(User user);

    /**
     * 修改用户信息 (数据来源于CC端主动调用)
     * 
     * @param user 用户信息 (数据来源于CC端主动调用)
     * @return 结果
     */
    public int updateUser(User user);

    /**
     * 删除用户信息 (数据来源于CC端主动调用)
     * 
     * @param id 用户信息 (数据来源于CC端主动调用)ID
     * @return 结果
     */
    public int deleteUserById(Long id);

    /**
     * 批量删除用户信息 (数据来源于CC端主动调用)
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteUserByIds(String[] ids);

    /**
     * 获取TL下所有FSE的实时位置（经纬度）接口
     * @methodName: getFseLocation
     * @description: TODO
     * @param TeamleaderId
     * @return: java.util.List<com.ruoyi.system.api.domain.User>
     * @author: shihx
     * @date: 2020/3/2 13:43
    **/
    public List<User> getFseLocation(@Param(value="TeamleaderId") String TeamleaderId);

    /**
     * 获取FSE基本信息接口
     * @methodName: getFseInformation
     * @description: TODO
     * @param EnginnerId
     * @return: java.util.List<com.ruoyi.system.api.domain.User>
     * @author: shihx
     * @date: 2020/3/6 8:52
    **/
    public List<User> getFseInformation(@Param(value="EnginnerId") String EnginnerId);

    /**
     * 根据员工ID更新推送标识
     * @methodName: updateRegistrationId
     * @description: TODO
     * @param user
     * @return: int
     * @author: shihx
     * @date: 2020-04-01 13:23
    **/
    public int updateRegistrationId(User user);

    /**
     * 根据服务单主键ID，查询TL相关推送信息
     * @methodName: getUserByServiceNoticeId
     * @description: TODO
     * @param serviceNoticeId
     * @return: java.util.List<com.ruoyi.system.api.domain.User>
     * @author: shihx
     * @date: 2020-04-03 9:08
    **/
    public List<User> getUserByServiceNoticeId(@Param(value="serviceNoticeId") String serviceNoticeId);

    /**
     * 根据员工ID更新员工信息
     * @methodName: updateUserByEnginnerId
     * @description: TODO
     * @param user
     * @return: int
     * @author: shihx
     * @date: 2020-04-08 8:44
    **/
    public int updateUserByEnginnerId(User user);

    /**
     * 获取工程师实时位置
     * @methodName: updateUserByEnginnerId
     * @description: TODO
     * @param teamleaderId
     * @param name
     * @return: int
     * @author: wlf
     * @date: 2020-04-13 10:43
     **/
    List<User> getFseLocationAndAddress(@Param(value="teamleaderId") String teamleaderId, @Param(value="name") String name, @Param(value="enginnerId") String enginnerId);


    /**
     * 获取工程师实时位置 首页
     * @methodName: updateUserByEnginnerId
     * @description: TODO
     * @param teamleaderId
     * @param name
     * @return: int
     * @author: wlf
     * @date: 2020-04-13 10:43
     **/
    List<User> getFseLocationAndAddressSY(@Param(value="teamleaderId") String teamleaderId, @Param(value="name") String name, @Param(value="enginnerId") String enginnerId, @Param(value="receiveDate") String receiveDate);

    /**
     * 更新所有registrationId相同的为空
     * @methodName: updateUserRegistrationId
     * @description: TODO
     * @param registrationId
     * @return: int
     * @author: shihx
     * @date: 2020-05-16 21:38
    **/
    public int updateUserRegistrationId(@Param(value="registrationId") String registrationId);




}
